package com.fsserver.core.service;

import com.fsserver.core.dto.ReconciliationRequestDTO;
import com.fsserver.core.entity.Reconciliation;
import com.fsserver.core.vo.ReconciliationResponseVO;

import java.util.Date;
import java.util.List;

/**
 * 对账服务接口
 * Reconciliation Service
 *
 * @author fsserver
 */
public interface ReconciliationService {

    /**
     * 创建对账
     * Create reconciliation
     *
     * @param reconciliationRequestDTO 对账请求DTO
     * @return 对账响应
     */
    ReconciliationResponseVO createReconciliation(ReconciliationRequestDTO reconciliationRequestDTO);

    /**
     * 查询对账
     * Query reconciliation
     *
     * @param reconciliationNo 对账号
     * @return 对账
     */
    Reconciliation queryReconciliation(String reconciliationNo);

    /**
     * 根据支付类型查询对账列表
     * List reconciliations by payment type
     *
     * @param paymentType 支付类型
     * @return 对账列表
     */
    List<Reconciliation> listReconciliationsByPaymentType(String paymentType);

    /**
     * 根据日期范围查询对账列表
     * List reconciliations by date range
     *
     * @param startDate 开始日期
     * @param endDate   结束日期
     * @return 对账列表
     */
    List<Reconciliation> listReconciliationsByDateRange(Date startDate, Date endDate);

    /**
     * 执行对账
     * Execute reconciliation
     *
     * @param reconciliationNo 对账号
     * @return 是否成功
     */
    boolean executeReconciliation(String reconciliationNo);
} 